import router from '@/router'

export default {
    state: {
        viewTags: []
    },
    mutations: {
        pushViewTags(state, route) {
            let backPathIndex = state.viewTags.findIndex(item => item.fullPath === router.options.history.state.back)
            let target = state.viewTags.find((item) => item.fullPath === route.fullPath)
            let isName = route.name
            if (!target && isName) {
                if (backPathIndex === -1) {
                    state.viewTags.push(route)
                } else {
                    state.viewTags.splice(backPathIndex + 1, 0, route)
                }
            }
        },
        removeViewTags(state, route) {
            state.viewTags.forEach((item, index) => {
                if (item.fullPath === route.fullPath) {
                    state.viewTags.splice(index, 1)
                }
            })
        },
        updateViewTags(state, route) {
            state.viewTags.forEach((item) => {
                if (item.fullPath === route.fullPath) {
                    item = Object.assign(item, route)
                }
            })
        },
        updateViewTagsTitle(state, title = '') {
            const nowFullPath = location.hash.substring(1)
            state.viewTags.forEach((item) => {
                if (item.fullPath === nowFullPath) {
                    item.meta.title = title
                }
            })
        },
        clearViewTags(state) {
            state.viewTags = []
        }
    }
}
